-- 基础数字与汉字映射（添加大写繁体支持）
local numChars = {
    [0] = "零", [1] = "一", [2] = "二", [3] = "三", [4] = "四",
    [5] = "五", [6] = "六", [7] = "七", [8] = "八", [9] = "九",
    [10] = "十", [20] = "二十", [30] = "三十", [40] = "四十",
    [50] = "五十", [60] = "六十", [70] = "七十", [80] = "八十", [90] = "九十"
}

-- 大写繁体数字映射
local upperNumChars = {
    [0] = "零", [1] = "壹", [2] = "贰", [3] = "叁", [4] = "肆",
    [5] = "伍", [6] = "陆", [7] = "柒", [8] = "捌", [9] = "玖",
    [10] = "拾", [20] = "贰拾", [30] = "叁拾", [40] = "肆拾",
    [50] = "伍拾", [60] = "陆拾", [70] = "柒拾", [80] = "捌拾", [90] = "玖拾"
}

-- 将数字（0-99）转换为简体汉字
local function numberToChinese(num)
    num = math.floor(tonumber(num) or 0)  -- 确保输入为整数
    if num < 0 or num > 99 then
        return ""  -- 超出范围返回空（可根据需求扩展）
    end

    -- 0-10直接返回对应汉字
    if num <= 10 then
        return numChars[num]
    end

    -- 11-99的转换（如11→十一、23→二十三）
    local tens = math.floor(num / 10) * 10  -- 十位（如23→20）
    local units = num % 10  -- 个位（如23→3）

    if units == 0 then
        return numChars[tens]  -- 整十数（如30→三十）
    else
        return numChars[tens] .. numChars[units]  -- 非整十数（如45→四十五）
    end
end

-- 将数字（0-99）转换为大写繁体汉字
local function numberToUpperChinese(num)
    num = math.floor(tonumber(num) or 0)  -- 确保输入为整数
    if num < 0 or num > 99 then
        return ""  -- 超出范围返回空（可根据需求扩展）
    end

    -- 0-10直接返回对应大写汉字
    if num <= 10 then
        return upperNumChars[num]
    end

    -- 11-99的转换（如11→拾壹、23→貳拾參）
    local tens = math.floor(num / 10) * 10  -- 十位（如23→20）
    local units = num % 10  -- 个位（如23→3）

    if units == 0 then
        return upperNumChars[tens]  -- 整十数（如30→參拾）
    else
        return upperNumChars[tens] .. upperNumChars[units]  -- 非整十数（如45→肆拾伍）
    end
end

return{
    numberToChinese = numberToChinese,
    numberToUpperChinese = numberToUpperChinese
}